/* eslint-disable no-param-reassign */
import i18n from '@/lang/index'
const initQueryParams = {
  // 订单号
  orderNum: '',
  // 商品代码
  goodsCode: '',
  // 操作流水
  operateSn: '',
  vin: '',
  // 车型
  modelId: [],
  // 订单类型
  orderType: [],
  // 订单状态
  orderStatus: [],
  // 支付状态
  payStatus: undefined,
  // 开票状态
  billStatus: undefined,
  // 退款状态
  refundStatus: undefined,
  // 创建开始时间
  startCreateTime: '',
  // 创建结束时间
  endCreateTime: '',
  // 支付开始时间
  startPayTime: '',
  // 支付结束时间
  endPayTime: '',
  // 开票开始时间
  startBillTime: '',
  // 开票结束时间
  endBillTime: '',
  // 退款开始时间
  startRefundTime: '',
  // 退款结束时间
  endRefundTime: ''

}
const initRightDrawerEvent = {
  // 触发的事件名
  key: '',
  // 触发事件所传递的数据
  data: ''
}
const initBgOrderFormData = {
  // 批量选择下车型id
  modelId1: undefined,
  // 来自文件下车型id
  modelId2: undefined,
  modelCode: '',
  // 车型名称(
  modelName: '',
  // 版型
  trimLevel: '',
  // 服务列表
  serviceList: [],
  // 车辆来源类型 1全部 2筛选(用户勾选车辆) 3来自文件
  vehicleSourceType: 1,
  // 车辆类型（1正式 2测试）
  vehicleType: undefined,
  // 条件下单-VIN
  vin: '',
  // 车辆IDs
  vehicleIds: [],
  // 条件下单-省份
  province: undefined,
  // 文件预处理ID(上传文件id)
  pretreatmentId: '',
  // 自定选择,只是前端控制不传递到后端
  isCustomSelect: false,
  // 来自文件时选择的文件名,不传递到后端
  fileName: '',
  uploadResult: null,
  // 已生效或待生效服务,不传递到后端
  serviceType: 'getEffectiveService',
  // 开通有效期
  year: 1,
  // 有效期类型
  yearType: 1
}
const state = {
  // 列表查询条件
  queryParams: {
    ...initQueryParams
  },
  // 右侧抽屉框事件(例如点击关联任务查看任务事件)
  rightDrawerEvent: { ...initRightDrawerEvent },
  // 后台下单表单数据
  bgOrderFormData: {
    ...initBgOrderFormData
  },
  // 订单类型
  orderType: [{
    value: 0,
    name: 'bgOrder'
  }, {
    value: 1,
    name: 'shopOrder'
  }, {
    value: 2,
    name: 'standardOrder'
  }],
  // 支付状态
  payStatus: [{
    value: 0,
    name: 'payNo'
  }, {
    value: 1,
    name: 'payYes'
  }],
  // 开票状态
  billStatus: [{
    value: 0,
    name: 'billedNo'
  }, {
    value: 1,
    name: 'billedYes'
  }]
}

const mutations = {
  setOrderManagementRightDrawerEvent (state, val) {
    state.rightDrawerEvent = val
  },
  resetOrderManagementRightDrawerEvent (state) {
    state.rightDrawerEvent = { ...initRightDrawerEvent }
  },
  resetOrderManagementBgOrderFormData (state) {
    state.bgOrderFormData = { ...initBgOrderFormData }
  },
  resetOrderManagementQueryParams (state) {
    state.queryParams = { ...initQueryParams }
  }
}

const getters = {
  // 将字典列表转换成对象形式{value1=>code1,value2=>code2...}
  getOrderManageDictCodeObj: state => dictCodeKey => {
    const obj = {}
    state[dictCodeKey].forEach(item => {
      obj[item.value] = i18n.t(item.name)
    })
    return obj
  }
}
export default {
  state,
  mutations,
  getters
}
